{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Linear Regression Predict Future Price"
      ],
      "metadata": {
        "nteract": {
          "transient": {
            "deleting": false
          }
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import seaborn as sns\n",
        "\n",
        "from sklearn.linear_model import LinearRegression\n",
        "from sklearn.metrics import r2_score\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# yahoo_finance is used to fetch data \n",
        "import yfinance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:20.789Z",
          "iopub.execute_input": "2021-12-27T01:54:20.794Z",
          "iopub.status.idle": "2021-12-27T01:54:21.956Z",
          "shell.execute_reply": "2021-12-27T01:54:21.975Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2014-01-01'\n",
        "end = '2021-12-23'\n",
        "\n",
        "# Read data \n",
        "df = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "df.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 completed\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/plain": "            Open  High   Low  Close  Adj Close    Volume\nDate                                                    \n2014-01-02  3.85  3.98  3.84   3.95       3.95  20548400\n2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200\n2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300\n2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100\n2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-02</th>\n      <td>3.85</td>\n      <td>3.98</td>\n      <td>3.84</td>\n      <td>3.95</td>\n      <td>3.95</td>\n      <td>20548400</td>\n    </tr>\n    <tr>\n      <th>2014-01-03</th>\n      <td>3.98</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>22887200</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.01</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>42398300</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.19</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>42932100</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.23</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>30678700</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:21.962Z",
          "iopub.execute_input": "2021-12-27T01:54:21.967Z",
          "iopub.status.idle": "2021-12-27T01:54:22.866Z",
          "shell.execute_reply": "2021-12-27T01:54:23.031Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df.tail()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 3,
          "data": {
            "text/plain": "                  Open        High         Low       Close   Adj Close  \\\nDate                                                                     \n2021-12-16  147.000000  147.929993  137.020004  138.639999  138.639999   \n2021-12-17  136.300003  142.039993  136.110001  137.750000  137.750000   \n2021-12-20  135.970001  138.259995  133.520004  135.800003  135.800003   \n2021-12-21  138.190002  144.500000  135.149994  144.250000  144.250000   \n2021-12-22  142.649994  144.500000  140.270004  143.880005  143.880005   \n\n              Volume  \nDate                  \n2021-12-16  63369600  \n2021-12-17  55642100  \n2021-12-20  38195400  \n2021-12-21  57785200  \n2021-12-22  46923700  ",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2021-12-16</th>\n      <td>147.000000</td>\n      <td>147.929993</td>\n      <td>137.020004</td>\n      <td>138.639999</td>\n      <td>138.639999</td>\n      <td>63369600</td>\n    </tr>\n    <tr>\n      <th>2021-12-17</th>\n      <td>136.300003</td>\n      <td>142.039993</td>\n      <td>136.110001</td>\n      <td>137.750000</td>\n      <td>137.750000</td>\n      <td>55642100</td>\n    </tr>\n    <tr>\n      <th>2021-12-20</th>\n      <td>135.970001</td>\n      <td>138.259995</td>\n      <td>133.520004</td>\n      <td>135.800003</td>\n      <td>135.800003</td>\n      <td>38195400</td>\n    </tr>\n    <tr>\n      <th>2021-12-21</th>\n      <td>138.190002</td>\n      <td>144.500000</td>\n      <td>135.149994</td>\n      <td>144.250000</td>\n      <td>144.250000</td>\n      <td>57785200</td>\n    </tr>\n    <tr>\n      <th>2021-12-22</th>\n      <td>142.649994</td>\n      <td>144.500000</td>\n      <td>140.270004</td>\n      <td>143.880005</td>\n      <td>143.880005</td>\n      <td>46923700</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 3,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.873Z",
          "iopub.execute_input": "2021-12-27T01:54:22.880Z",
          "iopub.status.idle": "2021-12-27T01:54:22.892Z",
          "shell.execute_reply": "2021-12-27T01:54:23.034Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df['Numbers'] = list(range(0, len(df)))\n",
        "df.head()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 4,
          "data": {
            "text/plain": "            Open  High   Low  Close  Adj Close    Volume  Numbers\nDate                                                             \n2014-01-02  3.85  3.98  3.84   3.95       3.95  20548400        0\n2014-01-03  3.98  4.00  3.88   4.00       4.00  22887200        1\n2014-01-06  4.01  4.18  3.99   4.13       4.13  42398300        2\n2014-01-07  4.19  4.25  4.11   4.18       4.18  42932100        3\n2014-01-08  4.23  4.26  4.14   4.18       4.18  30678700        4",
            "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>Open</th>\n      <th>High</th>\n      <th>Low</th>\n      <th>Close</th>\n      <th>Adj Close</th>\n      <th>Volume</th>\n      <th>Numbers</th>\n    </tr>\n    <tr>\n      <th>Date</th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n      <th></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>2014-01-02</th>\n      <td>3.85</td>\n      <td>3.98</td>\n      <td>3.84</td>\n      <td>3.95</td>\n      <td>3.95</td>\n      <td>20548400</td>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2014-01-03</th>\n      <td>3.98</td>\n      <td>4.00</td>\n      <td>3.88</td>\n      <td>4.00</td>\n      <td>4.00</td>\n      <td>22887200</td>\n      <td>1</td>\n    </tr>\n    <tr>\n      <th>2014-01-06</th>\n      <td>4.01</td>\n      <td>4.18</td>\n      <td>3.99</td>\n      <td>4.13</td>\n      <td>4.13</td>\n      <td>42398300</td>\n      <td>2</td>\n    </tr>\n    <tr>\n      <th>2014-01-07</th>\n      <td>4.19</td>\n      <td>4.25</td>\n      <td>4.11</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>42932100</td>\n      <td>3</td>\n    </tr>\n    <tr>\n      <th>2014-01-08</th>\n      <td>4.23</td>\n      <td>4.26</td>\n      <td>4.14</td>\n      <td>4.18</td>\n      <td>4.18</td>\n      <td>30678700</td>\n      <td>4</td>\n    </tr>\n  </tbody>\n</table>\n</div>"
          },
          "metadata": {}
        }
      ],
      "execution_count": 4,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.900Z",
          "iopub.execute_input": "2021-12-27T01:54:22.905Z",
          "iopub.status.idle": "2021-12-27T01:54:22.919Z",
          "shell.execute_reply": "2021-12-27T01:54:23.037Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = np.array(df[['Numbers']])\n",
        "y = df['Close'].values"
      ],
      "outputs": [],
      "execution_count": 5,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.927Z",
          "iopub.execute_input": "2021-12-27T01:54:22.932Z",
          "iopub.status.idle": "2021-12-27T01:54:22.940Z",
          "shell.execute_reply": "2021-12-27T01:54:23.040Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "model = LinearRegression().fit(X,y)"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.948Z",
          "iopub.execute_input": "2021-12-27T01:54:22.952Z",
          "iopub.status.idle": "2021-12-27T01:54:22.961Z",
          "shell.execute_reply": "2021-12-27T01:54:23.042Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print('Intercept:', model.intercept_)\n",
        "print('Slope:', model.coef_)"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Intercept: -21.651840699011544\n",
            "Slope: [0.05082415]\n"
          ]
        }
      ],
      "execution_count": 7,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.969Z",
          "iopub.execute_input": "2021-12-27T01:54:22.974Z",
          "iopub.status.idle": "2021-12-27T01:54:22.986Z",
          "shell.execute_reply": "2021-12-27T01:54:23.045Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# y = mx + b\n",
        "y_pred = model.coef_ * X + model.intercept_ \n",
        "df['Pred'] = y_pred\n"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:22.991Z",
          "iopub.execute_input": "2021-12-27T01:54:22.996Z",
          "shell.execute_reply": "2021-12-27T01:54:23.048Z",
          "iopub.status.idle": "2021-12-27T01:54:23.003Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "df['Pred'].plot()\n",
        "df['Close'].plot()\n",
        "plt.title('Close Price')\n",
        "plt.legend(loc=\"best\")\n",
        "plt.xlabel('Date')\n",
        "plt.ylabel('Price')\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": "<Figure size 432x288 with 1 Axes>",
            "image/png": "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\n"
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 9,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:23.008Z",
          "iopub.execute_input": "2021-12-27T01:54:23.013Z",
          "iopub.status.idle": "2021-12-27T01:54:23.110Z",
          "shell.execute_reply": "2021-12-27T01:54:23.158Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print('Model Accuracy:')\n",
        "r2_score(df['Close'], df['Pred'])"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Model Accuracy:\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 10,
          "data": {
            "text/plain": "0.732059924835964"
          },
          "metadata": {}
        }
      ],
      "execution_count": 10,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:23.116Z",
          "iopub.execute_input": "2021-12-27T01:54:23.120Z",
          "iopub.status.idle": "2021-12-27T01:54:23.133Z",
          "shell.execute_reply": "2021-12-27T01:54:23.162Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "model.coef_ * len(df)+1 + model.intercept_"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 11,
          "data": {
            "text/plain": "array([81.45387442])"
          },
          "metadata": {}
        }
      ],
      "execution_count": 11,
      "metadata": {
        "collapsed": true,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2021-12-27T01:54:23.139Z",
          "iopub.execute_input": "2021-12-27T01:54:23.143Z",
          "iopub.status.idle": "2021-12-27T01:54:23.150Z",
          "shell.execute_reply": "2021-12-27T01:54:23.164Z"
        }
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "name": "python",
      "version": "3.6.13",
      "mimetype": "text/x-python",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "pygments_lexer": "ipython3",
      "nbconvert_exporter": "python",
      "file_extension": ".py"
    },
    "kernelspec": {
      "argv": [
        "C:/Users/Tin Hang/Anaconda3\\python.exe",
        "-m",
        "ipykernel_launcher",
        "-f",
        "{connection_file}"
      ],
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "nteract": {
      "version": "0.28.0"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}